<?php
/**
 * Интерфейс который должен реализовывать каждый класс генерирующий ленту
 * Такие классы используются всеми ленточными обработчиками и поидее должны обеспечивать легкую их подмену
 *
 * @package default
 * @author Alexander Sibiryakov
 **/
interface AggregatedModel_Feed_FeedInterface
{
	/**
	 * Устанавливает параметры модели
	 *
	 * @return void
	 * @author Alexander Sibiryakov
	 **/
	public function setModelParams($key, $value);
	
	/**
	 * Извлекает данные
	 *
	 * @return void
	 * @author Alexander Sibiryakov
	 **/
	public function doStuff();
	
	/**
	 * Возвращает массив с записями, обычно он напрямую уходит в шаблоны, поэтому его поля следует искать там
	 *
	 * @return array
	 * @author Alexander Sibiryakov
	 **/
	public function getItems();
	
	/**
	 * Возвращает массив с данными для подгрузки и постраничного пролистывания вида
	 *	return array(
	 *		"prev"=>$this->page['prev'],
	 *		"next"=>$this->page['next'],
	 *		"overall_items_count"=>$this->items_count,
	 *		"items_generated"=>count($this->items),
	 *		"items_per_page"=>$this->$this->page_citems
	 *		);
	 *
	 * @return array
	 * @author Alexander Sibiryakov
	 **/
	public function getPager();
	
	/**
	 * Очищает внутренние переменные, так что экземпляр готов к повторному использованию
	 *
	 * @return void
	 * @author Alexander Sibiryakov
	 **/
	public function clean();
} // END class 


